// utils/permission.js
import store from '@/store'

export const checkLogin = () => {
  // 检查 Vuex 中的登录状态
  return store.getters['user/isAuthenticated'] || uni.getStorageSync('token')
}

export const loginInterceptor = (url) => {
  // 排除登录页本身，避免循环跳转
  if (url.startsWith('/pages/login/login')) {
    return true
  }
  
  // 需要登录的白名单页面路径
  const authPages = [
    '/pages/index/index',
    '/pages/my/my' // 示例
  ]
  
  // 检查当前页面是否需要登录
  const baseUrl = url.split('?')[0]
  const needAuth = authPages.some(page => baseUrl === page)
  
  const isLoggedIn = checkLogin()
  //console.log(`页面 ${url} 需要登录: ${needAuth}, 用户已登录: ${isLoggedIn}`)
  
  if (needAuth && !isLoggedIn) {
    //console.log('需要登录，跳转到登录页')
    // 使用setTimeout延迟执行重定向，避免导航冲突
    setTimeout(() => {
      uni.redirectTo({
        url: '/pages/login/login?redirect=' + encodeURIComponent(url)
      })
    }, 0)
    return false
  }
  return true
}